set( LINUX_SOURCES
    ClearWarningErrorHealthReportDescriptor.cpp
    TransitionErrorCode.cpp
    AccessStatus.cpp
    PartitionHealthEventDescriptor.cpp
    ReconfigurationHealthState.cpp
    ReconfigurationProgressStages.cpp
    ReconfigurationStuckHealthReportDescriptor.cpp
    ReconfigurationStuckHealthReportDescriptorFactory.cpp
	TransitionHealthReportDescriptor.cpp
    CatchupResult.cpp
    Communication.MessageMetadataTable.cpp
    MessageHandler.cpp
    Communication.FMMessageBuilder.cpp
    Communication.RequestFMMessageRetryAction.cpp
    MultipleReplicaCloseAsyncOperation.cpp
    ComProxyReplicator.BuildIdleReplicaAsyncOperation.cpp
    ComProxyReplicator.CatchupReplicaSetAsyncOperation.cpp
    ComProxyReplicator.ChangeRoleAsyncOperation.cpp
    ComProxyReplicator.CloseAsyncOperation.cpp
    ComProxyReplicator.cpp
    ComProxyReplicator.OnDataLossAsyncOperation.cpp
    ComProxyReplicator.OpenAsyncOperation.cpp
    ComProxyReplicator.UpdateEpochAsyncOperation.cpp
    ComProxyStatefulService.ChangeRoleAsyncOperation.cpp
    ComProxyStatefulService.CloseAsyncOperation.cpp
    ComProxyStatefulService.cpp
    ComProxyStatefulService.OpenAsyncOperation.cpp
    ComProxyStatelessService.CloseAsyncOperation.cpp
    ComProxyStatelessService.cpp
    ComProxyStatelessService.OpenAsyncOperation.cpp
    ComServicePartitionBase.cpp
    ComServicePartitionInfo.cpp
    ComStatefulServicePartition.cpp
    ComStatelessServicePartition.cpp
    Diagnostics.PerformanceCounters.cpp
    Diagnostics.EventWriterImpl.cpp
    Diagnostics.TraceEventType.cpp
    EndpointPublishState.cpp
    FailoverUnit.cpp
    FailoverUnitPreCommitValidator.cpp
    FailoverUnitProxy.ChangeReplicaRoleAsyncOperation.cpp
    FailoverUnitProxy.ChangeReplicatorRoleAsyncOperation.cpp
    FailoverUnitProxy.CloseAsyncOperation.cpp
    FailoverUnitProxy.CloseInstanceAsyncOperation.cpp
    FailoverUnitProxy.CloseReplicaAsyncOperation.cpp
    FailoverUnitProxy.CloseReplicatorAsyncOperation.cpp
    FailoverUnitProxy.ConfigurationUtility.cpp
    FailoverUnitProxy.OpenInstanceAsyncOperation.cpp
    FailoverUnitProxy.OpenReplicaAsyncOperation.cpp
    FailoverUnitProxy.OpenReplicatorAsyncOperation.cpp
    FailoverUnitProxy.ReadWriteStatusCalculator.cpp
    FailoverUnitProxy.ReplicatorBuildIdleReplicaAsyncOperation.cpp
    FailoverUnitProxy.ReplicatorCatchupReplicaSetAsyncOperation.cpp
    FailoverUnitProxy.ReplicatorOnDataLossAsyncOperation.cpp
    FailoverUnitProxy.ReplicatorUpdateEpochAsyncOperation.cpp
    FailoverUnitProxy.UserApiInvoker.cpp
    FailoverUnitProxy.UserApiInvokerAsyncOperationBase.cpp
    FailoverUnitProxy.cpp
    FailoverUnitProxyOperationManagerBase.cpp
    FailoverUnitProxyStates.cpp
    FailoverUnitReconfigurationStage.cpp
    FailoverUnitStates.cpp
    FailoverUnitTraceEnumerations.cpp
    FMMessageStage.cpp
    FMMessageState.cpp
    GenerationStateManager.cpp
    Health.HealthSubsystemWrapper.cpp
    HealthReportReplica.cpp
    Health.ReportReplicaHealthStateMachineAction.cpp
    Hosting.FindServiceTypeRegistrationErrorList.cpp
    Hosting.HostingAdapter.cpp
    Hosting.HostingEventHandler.cpp
    Hosting.HostingEventName.cpp
    Hosting.ServiceTypeMap.cpp
    Hosting.ServiceTypeMapEntity.cpp
    Hosting.ServiceTypeRegistrationChangeStateMachineAction.cpp
    Hosting.TerminateHostStateMachineAction.cpp
    Hosting.TerminateServiceHostReason.cpp
    Infrastructure.AsyncJobQueue.cpp
    Infrastructure.BackgroundWorkManager.cpp
    Infrastructure.BackgroundWorkManagerWithRetry.cpp
    Infrastructure.EventSource.cpp
    Infrastructure.EntityExecutionContext.cpp
    Infrastructure.EntityJobItemBase.cpp
    Infrastructure.EntityJobItemTraceInformation.cpp
    Infrastructure.EntitySet.cpp
    Infrastructure.EntitySetIdentifier.cpp
    Infrastructure.EntitySetName.cpp
    infrastructure.FailoverUnitEntityTraits.cpp
    Infrastructure.JobItemName.cpp
    Infrastructure.JobItemDescription.cpp
    Infrastructure.JobQueueManager.cpp
    Infrastructure.LocalFailoverUnitMap.cpp
    Infrastructure.MultipleEntityBackgroundWorkManager.cpp
    Infrastructure.MultipleEntityWork.cpp
    Infrastructure.MultipleEntityWorkManager.cpp
    Infrastructure.RetryTimer.cpp
    Infrastructure.SetMembershipFlag.cpp
    Infrastructure.StateMachineAction.cpp
    Infrastructure.StateMachineActionQueue.cpp
    Infrastructure.Threadpool.cpp
    JobItemContext.cpp
    LocalFailoverUnitProxyMap.cpp
    LocalHealthReportingComponent.cpp
    LocalLoadReportingComponent.cpp
    LocalMessageSenderComponent.cpp
    LocalStorageInitializer.cpp
    LockedFailoverUnitProxyPtr.cpp
    Message.cpp
    MessageRetry.FMMessagePendingEntityList.cpp
    MessageRetry.FMMessageSender.cpp
    MessageRetry.FMMessageRetryComponent.cpp
    MultipleReplicaCloseCompletionCheckAsyncOperation.cpp
    Node.NodeDeactivationState.cpp
    Node.NodeDeactivationStateProcessor.cpp
    Node.NodeDeactivationInfo.cpp
    Node.NodeDeactivationMessageProcessor.cpp
    Node.ServiceTypeUpdateStalenessChecker.cpp
    Node.ServiceTypeUpdatePendingLists.cpp
	Node.PendingReplicaUploadState.cpp
	Node.PendingReplicaUploadStateProcessor.cpp
    Node.ServiceTypeUpdateProcessor.cpp
    Node.ServiceTypeUpdateResult.cpp
    NodeUpAckProcessor.cpp
    OperationManager.cpp
    ProxyActions.cpp
    ProxyActionsList.ConcurrentExecutionCompatibilityLookupTable.cpp
    ProxyActionsList.cpp
    ProxyActionsListTypes.cpp
    ProxyConfigurationStage.cpp
    ProxyErrorCode.cpp
    ProxyEventSource.cpp
    ProxyId.cpp
    ProxyMessageFlags.cpp
    ProxyMessageStage.cpp
    ProxyReplyMessageBody.cpp
    ProxyRequestMessageBody.cpp
    ProxyUpdateServiceDescriptionReplyMessageBody.cpp
    Query.DeployedServiceReplicaUtility.cpp
    Query.HostQueryAsyncOperation.cpp
    Query.ReplicaDetailQueryHandler.cpp
    Query.ReplicaListQueryHandler.cpp
    Query.QueryUtility.cpp
    Query.QueryHelper.cpp
    RAReplicaOpenMode.cpp
    ReadWriteStatusState.cpp
    ReconfigurationAgent.cpp
    ReconfigurationState.cpp
    ReconfigurationAgentProxy.ActionListExecutorAsyncOperation.cpp
    ReconfigurationAgentProxy.ActionListExecutorReplicatorQueryAsyncOperation.cpp
    ReconfigurationAgentProxy.CloseAsyncOperation.cpp
    ReconfigurationAgentProxy.cpp
    Replica.cpp
    ReplicaCloseMode.cpp
    ReplicaCloseModeName.cpp
    ReplicaMessageStage.cpp
    ReplicaOpenMode.cpp
    ReplicaProxy.cpp
    ReplicaProxyStates.cpp
    ReplicaStates.cpp
    ReplicaUploadState.cpp
    ReplicatorOperationManager.cpp
    ReplicatorStates.cpp
    ReportFaultMessageBody.cpp
    ResourceMonitor.ResourceComponent.cpp
    RetryableErrorState.cpp
    RetryableErrorStateName.cpp
    RetryableErrorStateThresholdCollection.cpp
    ServiceOperationManager.cpp
    ServiceTypeRegistrationWrapper.cpp
    Storage.Api.RowType.cpp
    Storage.Api.OperationType.cpp
    Storage.FaultInjectionAdapter.cpp
    Storage.InMemoryKeyValueStoreState.cpp
    Storage.KeyValueStoreFactory.cpp
    Storage.LocalStoreAdapter.cpp
    TestApi.RAP.cpp
    TestApi.ReconfigurationAgent.cpp
    Upgrade.ApplicationUpgrade.cpp
    Upgrade.CancelUpgradeContext.cpp
    Upgrade.FabricCodeVersionClassifier.cpp
    Upgrade.FabricUpgrade.cpp
    Upgrade.FabricUpgradeStalenessChecker.cpp
    Upgrade.Upgrade.cpp
    Upgrade.UpgradeMessageProcessor.cpp
    Upgrade.UpgradeStateMachine.cpp
    Upgrade.UpgradeStateName.cpp
    Utility.SystemServiceHelper.cpp
)

add_library(objects_FailoverRA OBJECT ${LINUX_SOURCES})
#add_precompiled_header(objects_FailoverRA Ra.Stdafx.h)

add_subdirectory(test)

